perm filename TEACH[E,ALS]2 blob sn#119935 filedate 1974-09-19 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00022 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00003 00002	To learn to use the editor "E" type  R EFOO/2P←TEACH[UP,DOC] with a
C00006 00003	General remarks
C00010 00004	PAGE MOVING commands.
C00015 00005	E has several INTER-LINE mode commands.
C00020 00006	INTRA-LINE commands.
C00029 00007	Some less important line editing commands.
C00031 00008	ATTACH and COPY.
C00038 00009	The ADD-TEXT and LINE-INSERT modes.
C00042 00010	Modes, moods and states.
C00044 00011	The ubiquitous carriage return <cr>.  Its meanings and its foibles.
C00047 00012	The useful but dangerous <vt>.
C00050 00013	FIND commands are string searching commands.
C00058 00014	EXTEND commands.
C00073 00015	System commands to evoke E.
C00077 00016	Credits:
C00080 00017	APPENDIX A.  INTER-LINE commands (see page 4 and 5 for details).
C00083 00018	APPENDIX B   INTRA-LINE commands (see page 6 and 7 for details).
C00087 00019	APPENDIX C   LINE-INSERT commands (see page 9 for details).
C00090 00020	APPENDIX D   ATTACH and COPY commands (see page 8 for details).
C00093 00021	APPENDIX E   EXTEND commands (see page 14 for details).
C00096 00022	APPENDIX F   FIND commands (see page 13 for details).
C00105 ENDMK
C⊗;
To learn to use the editor "E" type  R E;FOO/2P←TEACH[UP,DOC] with a
  carriage return and follow instructions.

This will copy TEACH into your file area under the name FOO and allow
  you to read and modify it for practice. You may use some other name!

You are now looking at page 2 of this file (see top line with asterisks).
  Page 1 is the "directory" page used by E itself and of use to you later.

ABREVIATIONS used in TEACH to characterize commands.

   α     means hold the "CONTROL" key down while typing a character.
   β     means hold the "META" key down while typing a character.
   ⊗     means hold both "CONTROL" and "META" keys down while typing.

   <cr>    carriage return key.			<lf>    line feed key.
   <tab>   tab key.				<alt>   altmode key.
   <bs>    backspace key.			<form>  form-feed key.
   <vt>    the VT key.				<clear>	the clear key.
   CURRENT means the current line (with the →, ↔ or | on the left).

Most commands are single characters typed with one or both of the two
  special keys held down as specified by α, β or ⊗ as defined above.
The mnemonic equivalents of the commands will be shown in capitals in
  the definitions that follow.
When a number is shown in a command, this is by way of example, and any
  desired number may,of course, be used.
If you make a mistake or get into a state you don't understand, type <alt>.

   >>    indicates a line which is present for you to play with.
   !     indicates an instruction to follow for practice.

! Type ⊗P to go on to PAGE 3. (hold CONTROL and META down and type P).

General remarks

E is a page  oriented editor designed for use with  a scope terminal.
It  brings one  page  of the  text into  core,  as requested,  and it
displays a  portion of  this  page as  if through  a window.  A  line
pointer  and an  underscoring cursor  mark the  position in  the text
where  editing is to  occur.  Special  commands allow one  to go from
page to page, to move the  window up or down on the page and  to move
the line pointer and cursor as desired.

E does not make a  separate disk copy of the file being edited unless
requested to do so by  the use of the command  form shown on page  2,
so take care or you may damage a file that belongs to someone else.

E achieves its speed (1) by using the system  line editor and by only
changing the core copy  of the text on the completion of a line edit,
and (2) by updating the disk copy of the page only on  the completion
of a page  edit (automatically effected by a call  for another page).
One  can undo  an entire  page of  incorrectly made  modifications by
cancelling an update, but unfortunately, one can also  lose an entire
page of  desired modifications or  additions if the  system should go
down unexpectedly. Always remember that  the text shown on the  scope
does not necessarily mirror the true state of the text on the disk.

E is best understood by recognizing that it  operates in a variety of
different modes and that many commands are appropiate only to certain
modes. In fact some  commands have quite different effects  depending
upon the mode that E is in at the time that the command is given. The
dominant  mode is the  INTER-LINE mode which allows  for page, window
and line marker movement commands.

! Type ⊗P for the next page. This is an INTER-LINE command.
PAGE MOVING commands.

PAGE-MOVING commands are single characters typed with both the CONTROL
  and META keys held down. They may take modifiers as shown below.

   ⊗P	  Go to the next PAGE. (You have just done this).
   ⊗-⊗P   Back up to the previous page. ! Try this and then return with ⊗P.

   ⊗+⊗7⊗P  Go foreward 7 pages if possible otherwise to the last page.
   ⊗-⊗3⊗P  Go backward 3 pages if possible otherwise to the first page.

   ⊗7⊗P   Go to page 7.

! If you are sure that you know these commands, skip around a bit.
! Note that the directory on page 1 lists the first line of each page.

You are now looking at a longer page than before. Note two things:
   1 The top line contains asterisks, the page number and the file name.
   2 A bottom line contains dashes where on page 2 there were asterisks.

The asterisks mean that you are seeing the page through a window starting
  at the top of the page while the dashes mean that there is yet more on
  the page than that shown. On moving the window down, (we will do this
  soon) dashes will replace the top asterisks. If you can then see to the
  end of the page asterisks will appear at the bottom.

Note also that there are some lines at the very bottom that echo your
  command or acknowledge its execution. Watch these lines to detect errors.

Several commands allow you to move the window up and down on the page
  and to move the CURRENT line marker (the arrow on the left) around.

! Now type ⊗W to advance the WINDOW to see the rest of this page.

Good for you. ! Now before you forget type ⊗L to go back and try it again.

Note that the window moved down on the page only far enough to get to
  the end of the page. Had the page been longer, an entirely new window-
  ful might have appeared (except for the former last line which is saved).

The → which had previously been attached to the first line of text, moved
  to the last line and stayed with it as the window moved. This arrow
  points to a line called CURRENT. This line would be affected if you were
  to do some INTRA-LINE editing. More on this later.

It is good practice to limit the page size to perhaps 150 lines. This eases
  the load on the editor and makes the directory of more use, if you adopt
  the practice of starting each page of code with a suitable comment.

You will next want to be able to move the CURRENT line pointer up and down,
  You will find this information on the next page.

! So ⊗P.

E has several INTER-LINE mode commands.

   ⊗W     Advance the WINDOW, that is, move the last line to the top.
           If there is less than a windowful left, move the window only
           enough to see to the end. (You know this).
   ⊗L     Move the window up so that the first line becomes the LAST. This
           is the reverse of ⊗W.

   <cr>   Move the "Current line" pointer down a line. ! Try this.

   ⊗>     Move the pointer down 4 lines. This takes 4 keys at once.
   ⊗≥     Move the pointer down 16 lines. This also takes 4 keys.

! Use the above instructions to get CURRENT to this line. If you should go
   too far, read the instructions that follow to get back.

   <vt>   Move the "Current line"pointer up a line.   !(Try this now).
   ⊗<     Move the pointer up 4 lines. (Be sure to depress the <top> key).
   ⊗≤     move the pointer up 16 lines.

   ⊗T     Move the pointer up to the TOP line, adjusting the window to show
           a few lines above this if possible. !(Try this now).
   ⊗B     Move the pointer to the BOTTOM line, adjusting the window to show
           a few more lines if possible. !(Try it).

   ⊗J     Move (JUMP) the window so that the CURRENT line is at the top.

   ⊗D     DELETE the entire CURRENT line. (Don't try this unless CURRENT
          is at a practice line). <alt> does not undo this command.

   ⊗Q	  Insert a copy of the line just above CURRENT and open it
	    for editing (i.e. enter INTRA-LINE mode, see next page).

! Try these commands several times ending with ⊗B commands until
    asterisks appear at the BOTTOM.

Still another command of use for the quick scanning of a file is:

 <form>   Do a ⊗W if there is more material on this page, otherwise a ⊗P.
	    Caution: be sure E is in the INTER-LINE mode before using.

Two other commands that you will need later are:

   ⊗.	  Write the windowed page (as corrected) into the disk file.
   ⊗E	  DO a ⊗. and then EXIT to the system monitor.

Most of the INTER-LINE commands require the use of both the CONTROL and
  META keys. <cr> and <vt> are exceptions. These are rather special and
  they do more than just move CURRENT around.
When you are editing a line the carriage return signals the end of the
  editing. One must also be able to introduce a carriage return into the
  text. This will be explained in due course.

The reason for moving the pointer around is, of course so that you can
  edit a line of text, add more text or even delete some on occasion.

E uses the line editing commands that are a part of the operation system.
  You may already know. but for completeness theY will be summarized on
  the next page. Almost anything that one can type that does not require
  the META key will usually enter the INTRA-LINE mode.

! When you are ready use the <form> command to go to the next PAGE.
INTRA-LINE commands.

Typing a character without a CONTROL or META key, will normally invoke the
  line editor and the character is typed into the CURRENT line. A cursor
  will appear under the first character in the line and in that position
  where the next typed character will go. A character so typed overwrites
  the character that was at the cursor's position   E will be in the
  INTRA-LINE mode.

A word of caution- it is usually safe to continue typing on entering the
  INTRA-LINE mode without waiting for the system to catch up. This can
  fail, so look before giving a carriage return and if anything is amiss
  type <alt> and start over again. Strange things can happen. Do not try
  to save a partially correct line for later re-editing.

A change in the overwriting rule occurs when the CURRENT line is at the
  lower row of asterisks. Types into this line causes the asterisks to 
  disappear with extra space on the page automatically added to allow for
  the material typed. ! Remember to try this when you come to the bottom
  of this page.

When in the INTRA-LINE mode a <cr> will terminate the mode and move CURRENT
  to the next line. An α<cr> will terminate INTRA-LINE mode without moving
  CURRENT. Remember that the intra-line corrections do not appear in the
  core immage until you issue one of these commands and that the version on
  the disk still does not show your corrections until a disk update has
  been initiated. When in this intermediate state the letter W will appear
  at the end of the title line (with asterisks or dashes) at the top of the
  window, meaning that something is yet to be written. If your change will
  require the directory to be changed, the letter D will also appear. A
  letter X can also appear if the changes will require an extension in the
  space on the disk assigned to the current page.
!  If this line is at the bottom of the screen do a ⊗W.

Most of the line editing commands listed below will also enter the INTRA-
  LINE mode from the INTER-LINE mode.

! Try typing something into the next line.
<< This is a practice line. This is a practice line. This is for practice.

If you make a mistake and perhaps lose some valuable information hit <alt>
  rather than <cr> and your data will reappear as if by magic. ! Try it.

! Move the arrow down to the top of the following list and give a ⊗J in
  order to get more of the list on the screen at one viewing.

Some usefull line editing commands are:

  α<space>   Move the cursor to the right 1 space.
  α4α<space> Move the cursor 4 spaces to the right.
  α<bs>      Move the cursor to the left 1 space.
  α5α<bs>    Move the cursor 5 spaces to thee left.
  α<form>    Move the cursor to the start of the line.
  α<tab>     Move the cursor to the end of the line.

  αS then <char>    move the cursor to the first occurance of <char>.
  α3αS then <char>  move the cursor to the 3rd occurance of <char>

  αD         DELETE a character and move the rest of the line to the left.
               If at the end of the line, this will delete the <cr>.
		Caution: don't try to join two long lines.
  <bs>       BACK SPACE (at the end of the line or when a wrong character
               has just been typed).
  β<bs>      Delete the character to the left of the cursor position.
		
  β<char>    Make room and insert <char> ahead of the cursor position.
  β<cr>      Insert a carriage return and stay in intra-line mode.
  β<vt>      DON'T, at least not until you know better.

  αI         Enter INSERT mode (like holding META down continuously).
                Everything that you type including carriage returns but
                excepting α,β or ⊗ commands will appear as text.

             Any INTRA-LINE command will cause one to leave the INSERT
                mode. The safest command under these conditions is α<space>.

  <cr>       Leave intra-line mode, accept the line and move CURRENT down.
  α<cr>      Leave intra-line mode, accept the line, do not advance CURRENT.
  α<vt>      Leave intra-line mode, accept the line and move current up.

  <alt>      Restore the line to it original condition and leave intra-mode.

There are several other INTRA-LINE commands that are of less importance than
  the ones just listed. These are discribed on the next page and then on
  the page after that there is a discussion of some line moving commands.

!  Try introducing several lines of text beyond this point.

!  Before leaving this page try messing it up rather badly by all
    sorts of corrections and then type ⊗XCANCEL<cr>. Be sure that this
    command has worked before leaving the page or your corrections will
    be cast in concrete. If it did not work the first time try giving
    several <cr> commands and then try again.

! Go to the next page if you are interested or skip to page 8.
Some less important line editing commands.

  ⊗<vt>   Accept the line and back CURRENT up a line.
  ⊗↑      Accept the line, then back to the end of the previous line.
  ⊗↓      Accept the line, then goes to the end of the next line.

  These commands work in both INTER-LINE and INTRA-LINE modes.

If you are editing a line and type something that the line editor does not
  understand it will usually ignore the error (after thinking about it for
  a moment) but don't bank on this too heavily because it can fail.

If you type a legal ⊗ command (other than ⊗P or ⊗D) when in intra-line mode
  the line will be accepted as edited and the command will be carried out.

! Get into a line, and type ⊗J, or ⊗W, or ⊗≥.  Also try ⊗P, ⊗D.

The α<cr> command that works to recall a line from the system buffer in
  the system's monitor mode does not work in E but is replaced by the copy
  command which will be explained on the next page. You will recall that
  α<cr> has a diferent meaning in E. What is it?

ATTACH and COPY.

The ATTACH command causes the editor to put one or more contiguous lines
  into an attach buffer. One can then moves these lines up or down on the
  page or from page to page with the same commands that move CURRENT
  around. The attached lines simply follow along. To avoid confusion one
  must think of this as a mode changing command.

To show that the editor is in the ATTACH mode, the arrow at the left is
  changed to a vertical bar (thus |) marking the lines that are attached.

Basic commands.

  ⊗A     ATTACH the CURRENT line and change the "→" to a "|".
  ⊗3⊗A   ATTACH 3 lines starting with CURRENT aand mark these with  "|'s".
	   If a number greater than 8 is used (for the 3 as in the example)
           only the first 4 and the last 3 lines are shown. A row of dots
           is used to indicate that some attached lines are not shown.

  ⊗E     Deposit the attached lines as positioned and EXIT from the mode.
           Note that this command has a different meaning when one is NOT
           in the ATTACH mode (it then means EXIT editing). Don't stutter
           when typing it. Give the system time to react.
  ⊗R     REPLACE the attached lines in their original location and leave
           the ATTACH mode.
  ⊗K     KILL the attached lines (they go away beyond recall) and exit
           from the ATTACH mode.

  ⊗C     Make a COPY of the CURRENT line and ATTACH this copy.
  ⊗5⊗C   Make a COPY of 5 lines starting with CURRENT and ATTACH these.


Relative arguments.

Relative-argument commands add or remove lines from the end of the
 attach buffer thus:

  ⊗+⊗A    Attach 1 more line beyond those already attached.
  ⊗+⊗3⊗A  Attach 3 more lines beyond those already attached.
  ⊗-⊗A    Detach 1 line from the end of those already attached.
  ⊗-⊗2⊗A  Detach 2 lines from the end of those already attached.

  ⊗+⊗C    Copy 1 more line beyond those already copied.
  ⊗+⊗4⊗C  Copy 4 more lines beyond those already copied.
  ⊗-⊗C    Remove 1 line from the end of the copied set.
  ⊗-⊗2⊗C  Remove 2 lines from the end of the copied set.

If the attached lines have been moved before these relative-argument
  commands are given then additions and deletions are made in terms of
  the neighboring lines in the new location. This gets a bit hairy in
  the case of deletions but it is a very useful device for assembling a
  set of copied lines from several different places.

Funny but perhaps useful things happen if one uses a negative argument
  that is larger than the number that have been attached. ! Try it.

Note that all of the lines attached by a single command must be from
 the same page. They can not be deposited across a page boundry.

A word of warning, a hazard is involved in using ⊗A to move lines from
  page to page. The attached lines can be lost if the system should
  crash during the interval between the removal of the attached lines
  from one page and the final updating of the page to which they are
  moved. This hazard can be avoided by copying the lines rather than
  attaching them and then going back and deleting the original copy.
  This precaution is hardly necessary for a line or two but it is a
  wise one when you are moving large blocks ot text.

Moving lines from page to page takes time, so don't get impatient.

  This is a good place to comment on the BUBBLING report that you may
    have noticed in the scratch-pad lines at the bottom of the screen.
    This notice appears when a major rearrangement of the text between
    records becomes necessary. This also takes time.

!  Try attaching the practice lines below and move them around.
    If you get too far from home give a ⊗R command and you will be back.

<< This is practice line number 1.
<< This is practice line number 2.
<< This is practice line number 3.
<< This is practice line number 4.
<< This is practice line number 5.
<< This is practice line number 6.
<< This is practice line number 7.
<< This is practice line number 8.
<< This is practice line number 9.
<< This is practice line number 10.
The ADD-TEXT and LINE-INSERT modes.

One enters the ADD-TEXT mode by moving the arrow to the bottom asterisks.
  One can then simply start to type and the end-of-page marker will
  go away to make room.  All of the usual INTRA-LINE commands may be
  used. On the completion of a line edit the asterisks again appear on
  the line below the added text.

The LINE-INSERT mode allows one to insert lines of text at other points.
  It differs from the ADD-TEXT mode in that certain commands are illegal.
  One must be careful to leave the mode properly or dire things can happen.
  The fact that the editor is in the LINE-INSERT mode is signalled by a
  double arrow CURRENT line marker ↔ in place of the right arrow →.

To enter the LINE-INSERT mode:

  ⊗<cr>   Enter LINE-INSERT mode, insert a blank line ahead of the text
	    at CURRENT and mark the new line with the double arrow ↔.
          If you are in the middle of a line, this will break the line
	    into two separate lines with the ↔ at the start of a blank
	    line between the two portions.
 	  This does something else, if you are already in LINE-INSERT
	    mode (see below).

While in LINE-INSERT mode:

  <cr>    Accept the line and move the ↔ to newly inserted blank line.

  α<cr>   Leave the LINE-INSERT mode and accept the line in question.

  ⊗<cr>   Insert a blank line (if not in the middle of a line).
	    If you are in the middle of a line, this will break the line
	    into two separate lines and position the cursor to be ready
	    to accept text at the end of the second portion. At the
	    present time a bug in E prevents the second portion from
	    showing until the next <cr> has been typed, but it's there.

  <vt>    Don't. This writes an integral sign on the screen but puts a
	    vertical tab symbol in the text which can do funny things.

  α<vt>   Leave the LINE-INSERT mode and accept the line but move the →
	    back to the line ahead of the accepted line.

  ⊗<vt>   Don't.
	    If you are in the middle of a line, this will split the line
	    into two portions and cause the second portion to overwrite
	    the text in the line ahead of the one being edited.

  <alt>   Accept the line up to the cursor but delete the rest and leave
	    the LINE-INSERT mode with the arrow pointing to the remaining
	    text or to the next line.

! Try these somewhere.

>> perhaps between here
>>    and here

! ⊗P to continue.
Modes, moods and states.

The great power of E lies in its many modes. At the same time, E can also
  be moody if one tries to give it certain commands when it is not in the
  appropiate mode.  It can even get into a state where it will not listen
  to reason. In fact, you may easily lose much of your recent editing. So
  it may be well to review the matter of modes.

MODES can be characterized by:

   the modes FROM which they can be entered,
   the kinds of commands that are ACCEPTable, and
   the modes TO which they can go.

MODE		FROM		ACCEPT			TO

INTER-LINE	anywhere	all α,β  and ⊗		all
				<cr>,<vt>

INTRA-LINE	INTER,ADD-T,	all α or β		INTER,INSERT
		LINE-I,		text char,<cr>		LINE-I

INSERT		INTRA		α commands		INTER,INTRA
				text char.<cr>		ADD-T,LINE-I

ADD-TEXT	INTER,INTRA	all α,β or ⊗		INTER.INTRA
				text char,<cr>,<vt>	LINE-INSERT

LINE-INSERT	INTER,INTRA	all α or β		INTER,INTRA
		ADD-T		text char,<cr>
				avoid <vt> 's

ATTACH		INTER		page,window and		INTER
				 line moving
				 commands
				⊗E,⊗R and ⊗K

EXTEND		INTER		certain word commands	system monitor
				see a later page	INTER
The ubiquitous carriage return <cr>.  Its meanings and its foibles.

Command		   Mode     	Meaning
 
 <cr>		INTER-LINE	Move Current down to the next line.
		INTRA-LINE	Accept line and move Current down.
		INSERT		Accept line and move CURRENT down.
		ADD-TEXT	Accept line and move CURRENT down.
		LINE-INSERT	Accept line and make space for next line.
		ATTACH		Move the Attached lines down one line.

 α<cr>		INTER-LINE	Do nothing.
		INTRA-LINE	Accept line and do not move CURRENT.
		INSERT		Accept line and do not move CURRENT.
		ADD-TEXT	Accept line and do not move CURRENT.
		LINE-INSERT	Accept line, exit INSERT mode.
		ATTACH		Don't * (gets confused and does nothing).


 β<cr>		INTER-LINE	Do nothing.
		INTRA-LINE	Don't * (garbages the line).
		INSERT		Accept line to cursor and introduce a <cr>.
		ADD-TEXT	Accept line and do not move CURRENT.
		LINE-INSERT	Accept line and move CURRENT down.
		ATTACH		Don't * (illegal and gets confused).

 ⊗<cr>		INTER-LINE	Enter LINE-INSERT mode
		INTRA-LINE	Split line, enter LINE-INSERT mode between.
		INSERT		Split line, enter LINE-INSERT mode between.
		ADD-TEXT	Split line and gets confused.
		LINE-INSERT	Split line, Cursor to end of second part.
		ATTACH		Illegal. Do nothing.

Commands which need fixing are:
		INTER-LINE	α<cr>,β<cr>
		INTRA-LINE	β<cr>,⊗<cr>
		INSERT		⊗<cr>
		ADD-TEXT	β<cr>,⊗<cr>
		LINE-INSERT	β<cr>,⊗<cr>
		ATTACH		α<cr>,β<cr>,⊗<cr>
The useful but dangerous <vt>.

These commands should be reverse direction <cr>'s but they are not.
  The reasons are deeply hidden within E. For the moment, beware.

 <vt>		INTER-LINE	Move CURRENT up one line.
 		INTRA-LINE	Don't *. A vt is written into the text.
		INSERT		Don't *. A vt is written into the text.
		ADD-TEXT	Don't * if some text has been typed.
		LINE-INSERT	Don't *. A vt is overwritten into the text.
		ATTACH		Move the Attached lines up one line.

 α<vt>		INTER-LINE	Move CURRENT up one line.
 		INTRA-LINE	Accept line and move CURRENT up a line.
		INSERT		Accept line and move CURRENT up a line.
		ADD-TEXT	Move CURRENT up a line.
		LINE-INSERT	Accept line and move CURRENT up a line.
		ATTACH		Move the Attached lines up one line.

 β<vt>		INTER-LINE	Move CURRENT up one line.
 		INTRA-LINE	Don't *. A vt is written into the text.
		INSERT		Accept line and move CURRENT up a line.
		ADD-TEXT	Move CURRENT up a line.
		LINE-INSERT	Accept line and move CURRENT up a line.
		ATTACH		Move the Attached lines up one line.

 ⊗<vt>		INTER-LINE	Move CURRENT up one line.
		INTRA-LINE	Accept line and move CURRENT up a line.
		INSERT		Accept line and move CURRENT up a line.
		ADD-TEXT	Move CURRENT up a line.
		LINE-INSERT	Don't.
		ATTACH		Move the Attached lines up one line.

Commands which need fixing are: 

		INTRA-LINE	<vt>,β<vt>
		INSERT		<vt>
		ADD-TEXT	<vt>
		LINE-INSERT	<vt>,⊗<vt>
FIND commands are string searching commands.

The search can be specified in several different ways:

1)	The search can be for an alphameric string that is separated from
	  the rest of the text by non-alphameric characters or it may be
          for any string regardless of its surroundings.
	  Note that no distinction is made between upper and lower case.

		⊗FSmith<cr>   Find Smith or smith but not this string in
		  blacksmith or in Smithsonian.
		αFSmith<cr>   Find smith as an isolated word or as a
		  part of a longer string (in blacksmith for example).
		  The string is no longer limited to alphamerics but
		  use care because there are still some bugs in E.


2)	The search can be restricted to a single page or it may range over
	  the entire text.
		The commands just listed were for single page searches. The
	  corresponding multa-page search commands are:

		⊗XF Smith<cr>   for a delimited string, and

		αXF Smith<cr>   for the string regardless of surroundings.

		  Note that the ⊗ and α keys are not used with the F and
		  that a space is required between the F and the string.
		  The ⊗X and αX are EXTEND commands which permit more than
		  single character commands, hence the need for the space.

3)	The action that is to be taken on the successful termination of
	  the search is specified by the delimiter used to terminate the
	  string.
	  The <cr> as used above, moves the → to the found line.
	  A repeat of the Find command, if given, will again start with
	  this same line, but after the found string so that multiple
	  occurances of a string within a line can be found.

	  Accepted action-defining delimiters are:

	<cr>	  Move CURRENT to the found line or report failure.

	α<cr>	  Terminate as with <cr> but move the cursor until it
		    is under the first character of the string.
		  Note that this leaves E in the INTRA-LINE mode. A
		    second FIND command can however be given and the
		    next occurance will be found.
		  If a FIND command is terminated with <cr>, an α<cr>
		    will still move the cursor to the string.

	⊗J	  JUMP the line with the found string to the top of the
		    window.

	⊗<cr>	  Enter the LINE-INSERT mode with the ↔ at an inserted
		    blank line ahead of the found line.

	⊗P	  Make the search over the directory PAGE and then display
		    the referenced page.

	⊗A	  Attach all lines starting with CURRENT up to and including
		    the line with the specified string.
		  If used with an EXTEND command and if the string is not
		    on the windowed page, the attachment will begin at
		    the top of the page on which the string is found.
		  Attachments do not cross page boundries.

	⊗C	  COPY all lines starting with CURRENT up to and including
		    the line with the specified string.
		  See ⊗A above for restriction with an EXTEND command.

	⊗D	  DELETE all lines beginning with CURRENT up to but not
		    including the line with the specified string.
		  See ⊗A above for EXTEND command restriction.
		  This is a very dangerous command so use it with caution.

4)	The search can be for the first occurance of the specified string
	  or for the n'th occurance.

	⊗3⊗Fsmith<cr>	FIND the 3rd occurance of SMITH.
	⊗Fsmith⊗3<cr>	FIND the 3rd occurance of SMITH (alternate form).

A string, once specified, is sticky, that is one need not retype the string
  for a repeat of the command. The search string for a within-one-page
  search is remembered independently from that for an EXTEND search.
A repeat factor, once specified is also sticky.

	<alt>	  Cancel both string and repeat specifications.
EXTEND commands.

Certain commands are potentially too dangerous to be safely evoked by
  a single character. There are also more commands than can be obtained
  with single characters. These contingencies are handled by the
  EXTEND command specified as follows:

	⊗X	Accept the string which follows as a command.
 		  This string may be abbreviated as long as no ambiguity
		  results. The string must be terminated by a space if
  		  parameters are required or by a <cr> or some other
		  delimiter.

The EXTEND form of the FIND command has already been discribed. In
  this case only a single letter needs be used, but any partial
  string up to the complete word FIND is acceptable.

	EXTEND commands.

	⊗XFIND	  see earlier page on FIND.
	αXFIND	  see earlier page on FIND.


	⊗XDRAW<cr>   Redraw the complete screen. Used when glitches
		       show on the screen from whatever cause.

	⊗XMARK<cr>   Insert a page mark between the CURRENT line and
		       the line above it and display the new page.

	⊗XDELETE<cr>   Delete the page mark between this page and the next.
		         Note that using this command just after a ⊗XMARK
		         command does not undo the newly inserted mark
		         but it does delete the next mark.

	⊗XCANCEL<cr>   Do not write out the current page but instead 
		         reread it in from the disk.

	⊗XREADONLY<cr> If in read-write write out the current page and
		         then inhibit any further writing.

	⊗XREADWRITE<cr> Disable the write-inhibit.

	⊗XGO<cr>        Exit from E and repeat the last RPG command.


	⊗XDDT<cr>       Branch to RAID if it is present. RαG returns.

Additional EXTEND commands thet may not be completely debugged.

	⊗XAPPEND<cr>	Read in an additional page after the current
			  one so that the two may be edited togather.
			  Effect is undone by ⊗XCANCEL<cr>.
			  Caution: this increases core size.

	⊗XCLOSE<cr>	Close and reopen file so it can be accessed
			  by someone else? (unverified)
	⊗XDIRED<cr>	Go to the directory editor.

	⊗XDPYALWAYS

	⊗XPPYSKIP

	⊗XINSERT

	⊗XJFILL<cr>	Redistribute text between lines as if to
			  justify but do not pad lines with blanks.
			  (see ⊗XJUST<cr> below for conditions).

	⊗XJUST<cr>	Justify the current page (to 69 characters).
			If in ATTACH mode justify the attached lines.

	⊗XJUST⊗13<cr>	Justify 13 lines starting with CURRENT.

	XLINCNT<cr>	Type the number of lines in the current page.
			  (Useful formatting information).

	⊗PPSETT<cr>
	⊗XQUIT

	⊗XRSYS

	⊗XRUN

	⊗SNKOFF

	⊗SNKON

	⊗TV

	⊗TYPE
System commands to evoke E.

Basic commands

	CE <string><cr>
		Create a new file with the name and extension as
 		  specified by string.
		  The file will contain a directory page and one
		  blank page. E will be in the ADD-LINE mode.
	ET <existing file name><cr>
		Enter E with the specified file. If the file has
		  but one text page, display this, otherwise
		  display the directory page.
	ET	Enter E with the most recently used file at the
		  place where last edited. This only works during
		  one login period unless one has used the K/F
		  form of logout.
	R E;<string1>←<string2><cr>
		Copy file named string2 into a new file named
		  string1, start E and display the as above.
		  If the string2 file has a valid directory this
		  is executed relatively rapidly, if not a new
		  directory will have to be created.

Switches, when used, are strings beginning with a slash which are
  placed immediately after the name string that they are to modify.

	/R	Open the file in the read only mode. This is useful
 		  if one wants to examine a file without any danger
		  of inadvertently modifying it.
		    example: ET TEACH.TXT[UP,DOC]/R<cr>
	/2P	Open the file displaying page 2.
	/5L	Open the file with the arrow at line 5.
		  This is not very useful by itself but see below.

When two or more switches are to be used they should be put together
  inside parenthesis.

		example: ET MYFILE(R4P5L)<cr>

Credits:
 Dan Swinehart wrote TV, the original version of the display editor,
   and created the original version of TEACH to teach the use of TV.
 Fred Wright wrote the FAIL version, called E.
 Brian Harvey modified TEACH to reflect differences between E AND TV.
 Arthur Samuel redid Brian's version to allow for bugs that still exist
   in E and to simplify the presentation, hopefully so as to make it
   easier to read by a rank newcomer and at the same time to be useful
   as a manual until the time when all the bugs have been removed
   from E and a good manual can be written.

Disclaimer.

The following is copied from the earlier version of Teach. I hope soon
   to make it entirely unnecessary, but it is still needed.

This document has not been entirely honest in describing the commands. 
   It has made available most of the features of the editor, but has not
   necessarily described all the ways in which these features may be
   invoked.  Many commands have optional codings -- most may be called
   using fewer control bits than we have required here.  A complete
   description of E features is available in the TV manual,
   TVED.DCS[S,DOC], and the file TV2E.FW[UP,DOC] which describes how
   E differs from TV.[YAH?]
APPENDIX A.  INTER-LINE commands (see page 4 and 5 for details).

   ⊗P	  Go to the next PAGE.
   ⊗-⊗P   Back up to the previous page. ! Try this and then return with ⊗P.

   ⊗+⊗7⊗P  Go foreward 7 pages if possible otherwise to the last page.
   ⊗-⊗3⊗P  Go backward 3 pages if possible otherwise to the first page.

   ⊗7⊗P   Go to page 7.

   ⊗W     Advance the WINDOW, that is, move the last line to the top.
           If there is less than a windowful left, move the window only
           enough to see to the end. (You know this).
   ⊗L     Move the window up so that the first line becomes the LAST. This
           is the reverse of ⊗W.

   <cr>   Move the "Current line" pointer down a line.

   ⊗>     Move the pointer down 4 lines. This takes 4 keys at once.
   ⊗≥     Move the pointer down 16 lines. This also takes 4 keys.

   <vt>   Move the "Current line"pointer up a line.
   ⊗<     Move the pointer up 4 lines. (Be sure to depress the <top> key).
   ⊗≤     move the pointer up 16 lines.

   ⊗T     Move the pointer up to the TOP line, adjusting the window to show
           a few lines above this if possible.
   ⊗B     Move the pointer to the BOTTOM line, adjusting the window to show
           a few more lines if possible.

   ⊗J     Move (JUMP) the window so that the CURRENT line is at the top.

   ⊗D     DELETE the entire CURRENT line.

   ⊗Q	  Insert a copy of the line just above CURRENT and open it
	    for editing (i.e. enter INTRA-LINE mode).

 <form>   Do a ⊗W if there is more material on this page, otherwise a ⊗P.

   ⊗.	  Write the windowed page (as corrected) into the disk file.
   ⊗E	  DO a ⊗. and then EXIT to the system monitor.

APPENDIX B   INTRA-LINE commands (see page 6 and 7 for details).

  α<space>   Move the cursor to the right 1 space.
  α4α<space> Move the cursor 4 spaces to the right.
  α<bs>      Move the cursor to the left 1 space.
  α5α<bs>    Move the cursor 5 spaces to the left.
  α<form>    Move the cursor to the start of the line.
  α<tab>     Move the cursor to the end of the line.

  αS then <char>    move the cursor to the first occurance of <char>.
  α3αS then <char>  move the cursor to the 3rd occurance of <char>

  αD         DELETE a character and move the rest of the line to the left.
               If at the end of the line, this will delete the <cr>.
		Caution: don't try to join two long lines.
  <bs>       BACK SPACE (at the end of the line or when a wrong character
               has just been typed).
  β<bs>      Delete the character to the left of the cursor position.
		
  β<char>    Make room and insert <char> ahead of the cursor position.
  β<cr>      Insert a carriage return and stay in intra-line mode.
  β<vt>      DON'T, at least not until you know better.

  αI         Enter INSERT mode (like holding META down continuously).
                Everything that you type including carriage returns but
                excepting α,β or ⊗ commands will appear as text.

             Any INTRA-LINE command will cause one to leave the INSERT
                mode. The safest command under these conditions is α<space>.

  <cr>       Leave intra-line mode, accept the line and move CURRENT down.
  α<cr>      Leave intra-line mode, accept the line, do not advance CURRENT.
  α<vt>      Leave intra-line mode, accept the line and move current up.

  <alt>      Restore the line to it original condition and leave intra-mode.

  ⊗<vt>      Accept the line and back CURRENT up a line.
  ⊗↑         Accept the line, then back to the end of the previous line.
  ⊗↓         Accept the line, then goes to the end of the next line.
APPENDIX C   LINE-INSERT commands (see page 9 for details).

To enter the LINE-INSERT mode:

  ⊗<cr>   Enter LINE-INSERT mode, insert a blank line ahead of the text
	    at CURRENT and mark the new line with the double arrow ↔.
	  If you are in the middle of a line, this will break the line
	    into two separate lines and position the cursor to be ready
	    to accept text at the end of the second portion. At the
	    present time a bug in E prevents the second portion from
	    showing until the next <cr> has been typed, but it's there.
 	  This does something else, if you are in LINE-INSERT mode.

While in LINE-INSERT mode:

  <cr>    Accept the line and move the ↔ to newly inserted blank line.

  α<cr>   Leave the LINE-INSERT mode and accept the line in question.

  ⊗<cr>   Insert a blank line (if not in the middle of a line).
	    If you are in the middle of a line, this will break the line
	    into two separate lines and position the cursor to be ready
	    to accept text at the end of the second portion. At the
	    present time a bug in E prevents the second portion from
	    showing until the next <cr> has been typed, but it's there.

  <vt>    Don't. This writes an integral sign on the screen but puts a
	    vertical tab symbol in the text which can do funny things.

  α<vt>   Leave the LINE-INSERT mode and accept the line but move the →
	    back to the line ahead of the accepted line.

  ⊗<vt>   Don't.
	    If you are in the middle of a line, this will split the line
	    into two portions and cause the second portion to overwrite
	    the text in the line ahead of the one being edited.

  <alt>   Accept the line up to the cursor but delete the rest and leave
	    the LINE-INSERT mode with the arrow pointing to the remaining
	    text or to the next line.
APPENDIX D   ATTACH and COPY commands (see page 8 for details).

  ⊗A     ATTACH the CURRENT line and change the "→" to a "|".
  ⊗3⊗A   ATTACH 3 lines starting with CURRENT aand mark these with  "|'s".
	   If a number greater than 8 is used (for the 3 as in the example)
           only the first 4 and the last 3 lines are shown. A row of dots
           is used to indicate that some attached lines are not shown.

  ⊗E     Deposit the attached lines as positioned and EXIT from the mode.
           Note that this command has a different meaning when one is NOT
           in the ATTACH mode (it then means EXIT editing). Don't stutter
           when typing it. Give the system time to react.
  ⊗R     REPLACE the attached lines in their original location and leave
           the ATTACH mode.
  ⊗K     KILL the attached lines (they go away beyond recall) and exit
           from the ATTACH mode.

  ⊗C     Make a COPY of the CURRENT line and ATTACH this copy.
  ⊗5⊗C   Make a COPY of 5 lines starting with CURRENT and ATTACH these.

Relative arguments.

  ⊗+⊗A    Attach 1 more line beyond those already attached.
  ⊗+⊗3⊗A  Attach 3 more lines beyond those already attached.
  ⊗-⊗A    Detach 1 line from the end of those already attached.
  ⊗-⊗2⊗A  Detach 2 lines from the end of those already attached.

  ⊗+⊗C    Copy 1 more line beyond those already copied.
  ⊗+⊗4⊗C  Copy 4 more lines beyond those already copied.
  ⊗-⊗C    Remove 1 line from the end of the copied set.
  ⊗-⊗2⊗C  Remove 2 lines from the end of the copied set.
APPENDIX E   EXTEND commands (see page 14 for details).

	⊗XFIND	  see APPENDIX F.
	αXFIND	  see APPENDIX F.

	⊗XDRAW<cr>   Redraw the complete screen. Used when glitches
		       show on the screen from whatever cause.

	⊗XMARK<cr>   Insert a page mark between the CURRENT line and
		       the line above it and display the new page.

	⊗XDELETE<cr>   Delete the page mark between this page and the next.
		         Note that using this command just after a ⊗XMARK
		         command does not undo the newly inserted mark
		         but it does delete the next mark.

	⊗XCANCEL<cr>   Do not write out the current page but instead 
		         reread it in from the disk.

	⊗XREADONLY<cr> If in read-write write out the current page and
		         then inhibit any further writing.

	⊗XREADWRITE<cr> Disable the write-inhibit.

	⊗XJFILL<cr>	Redistribute text between lines as if to
			  justify but do not pad lines with blanks.
			  (see ⊗XJUST<cr> below for conditions).

	⊗XJUST<cr>	Justify the current page (to 69 characters).
			If in ATTACH mode justify the attached lines.

	⊗XJUST⊗13<cr>	Justify 13 lines starting with CURRENT.

	XLINCNT<cr>	Type the number of lines in the current page.
			  (Useful formatting information).

Additional EXTEND commands thet may not be completely debugged.

	⊗XAPPEND<cr>	Read in an additional page after the current
			  one so that the two may be edited togather.
			  Effect is undone by ⊗XCANCEL<cr>.
			  Caution: this increases core size.

	⊗XCLOSE

	⊗XDIRED

	⊗XDPYALWAYS

	⊗XPPYSKIP

	⊗XINSERT

	⊗PPSETT<cr>
	⊗XQUIT

	⊗XRSYS

	⊗XRUN

	⊗SNKOFF

	⊗SNKON

	⊗TV

	⊗TYPE
APPENDIX F   FIND commands (see page 13 for details).

  Single page finds

	⊗FSmith<cr>   Find Smith or smith but not this string in
	  blacksmith or in Smithsonian.
	αFSmith<cr>   Find smith as an isolated word or as a
	  part of a longer string (in blacksmith for example).
	  The string is no longer limited to alphamerics but
	  use care because there are still some bugs in E.

	⊗3⊗Fsmith<cr>	FIND the 3rd occurance of SMITH.
			  (or with α as above)
	⊗Fsmith⊗3<cr>	FIND the 3rd occurance of SMITH (alternate form).
			  (or with α as above)

  Multi-page finds

	⊗XF Smith<cr>   for a delimited string, and

	αXF Smith<cr>   for the string regardless of surroundings.

  Accepted action-defining delimiters are:

	<cr>	  Move CURRENT to the found line or report failure.

	α<cr>	  Terminate as with <cr> but move the cursor until it
		    is under the first character of the string.
		  Note that this leaves E in the INTRA-LINE mode. A
		    second FIND command can however be given and the
		    next occurance will be found.
		  If a FIND command is terminated with <cr>, an α<cr>
		    will still move the cursor to the string.

	⊗J	  JUMP the line with the found string to the top of the
		    window.

	⊗<cr>	  Enter the LINE-INSERT mode with the ↔ at an inserted
		    blank line ahead of the found line.

	⊗P	  Make the search over the directory PAGE and then display
		    the referenced page.

	⊗A	  Attach all lines starting with CURRENT up to and including
		    the line with the specified string.
		  If used with an EXTEND command and if the string is not
		    on the windowed page, the attachment will begin at
		    the top of the page on which the string is found.
		  Attachments do not cross page bountries.

	⊗C	  COPY all lines starting with CURRENT up to and including
		    the line with the specified string.
		  See ⊗A above for restriction with an EXTEND command.

	⊗D	  DELETE all lines beginning with CURRENT up to but not
		    including the line with the specified string.
		  See ⊗A above for EXTEND command restriction.
		  This is a very dangerous command so use it with caution.